﻿<!doctype html>
<html>

	<head>
		<meta charset="utf-8">
		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

		<title>葡萄藤PPT</title>

		<link rel="stylesheet" href="../css/reveal/reveal.css">

		<!-- PPT主题，可以在/css/reveal/theme/中选择其他主题，目前暂时只能使用该模板 -->
		<link rel="stylesheet" href="../css/reveal/theme/ptt.css">

		<!-- syntax highlighting 代码高亮主题 -->
		<link rel="stylesheet" href="../lib/reveal/css/zenburn.css">

		<!-- 打印和PDF输出样式 -->
		<script>
			var link = document.createElement('link');
			link.rel = 'stylesheet';
			link.type = 'text/css';
			link.href = window.location.search.match(/print-pdf/gi) ? '../css/reveal/print/pdf.css' : '../css/reveal/print/paper.css';
			document.getElementsByTagName('head')[0].appendChild(link);
		</script>
		<style>
			.reveal pre code {
				background-color: #120;
			}
		</style>
	</head>

	<body>
		<img src="../img/demo/logo.png" alt="" usemap="#pttmap" class="base-logo">
		<map name="pttmap">
    <area shape="rect" coords="0,0,276,58" href="http://www.jnshu.com" alt="" target="_blank"/>
</map>
		<div class="reveal">
			<div class="slides">
				<section>
					<h4>小课堂【萌新】</h4>
					<h4>【CSS】position定位有哪些，各有什么特点？</h4>
					<h4>分享人：赖骏锋</h4>

				</section>
				<section>
					<p>目录</p>
					<p>1.背景介绍</p>
					<p>2.知识剖析</p>
					<p>3.常见问题</p>
					<p>4.解决方案</p>
					<p>5.编码实战</p>
					<p>6.扩展思考</p>
					<p>7.参考文献</p>
					<p>8.更多讨论</p>
				</section>
				<section>
					<section>
						<h3>1.背景介绍</h3>
					</section>
					<section>
						<p>我们在布局的时候经常会使用到position的属性，那么你真的完全了解它吗？</p>
					</section>
					<section>
						<p>我们在布局的时候经常会使用到position的属性，那么你真的完全了解它吗</p>
						<p>常规取值：   1.static(静态）   2.Relative(相对）      3.Absolute(绝对)   4.fixed(固定)</p>
					</section>
				</section>
				<section>
					<section>
						<h3>2.知识剖析</h3>
					</section>
					<section>
						<p>position 属性把元素放置到一个静态的、相对的、绝对的、或固定的位置中。
							position属性值:
							position的属性值共有四个常用的：static、relative、absolute、fixed。还有不常用的：inherit、initial、sticky</p>
					</section>
					<section>
						<strong>STATIC</strong>
						<p>
							所有元素在默认的情况下position属性均为static，而我们在布局上经常会用到的相对定位和绝对定位常用的属性top、bottom、left、right或者 z-index 声明在position为static的情况下无效。其用法为：在改变了元素的position属性后可以将元素重置为static让其回归到页面默认的普通流中
						</p>
						<img src="../../../../../AppData/Local/Temp/relative.png"/>
					</section>
					<section>
						<strong>RELATIVE</strong>
						<p>俗称的相对定位，重点在于对相对理解。我们此前说过每个元素在页面的普通流中会有“占用”一个位置，这个位置可以理解为默认位置，而相对定位就是将元素偏离元素的默认位置，但普通流中依然保持着原有的默认位置，并没有脱离普通流，只是视觉上发生的偏移</p>
						<img src="../../../../../AppData/Local/Temp/relative.png"/>
                </section>
					<section>
						<strong>ABSOLUTE</strong>
						<p>俗称的绝对定位，绝对定位是相对而言的，怎么理解呢？应用了position: absolute的元素会循着节点树中的父（祖）元素来确定“根”，然后相对这个“根”元素来偏移。如果在其节点树中所有父（祖）元素都没有设置position属性值为relative或者absolute则该元素最终将对body进行位置偏移。应用了position: absolute的元素会脱离页面中的普通流并改变Display属性（重点）</p>
						<img src="../../../../../AppData/Local/Temp/absolute.png"/>
					</section>
					<section>
						<strong>FIXED</strong>
						<p>特点：类似于absolute，但不随着滚动条的移动而改变位置。元素的位置相对于浏览器窗口是固定位置</p>
						<img src="../../../../../AppData/Local/Temp/fixed.png"/>
					</section>
				</section>
				<section>
					<section>
						<h3>3.常见问题</h3>
					</section>
					<section>
						<p>
							相对定位与绝对定位的搭配使用效果?
						</p>
					</section>
				</section>
				<section>
					<section>
						<h3>4.解决方案</h3>
					</section>
					<section>
						<p>
							父容器使用相对定位，子元素使用绝对定位后，这样子元素的位置不再相对于浏览器左上角，而是相对于父窗口左上角，若无非static祖先，以初始包含块定位，在浏览器里，根元素的包含块（HTML）为初始包含块，只是一般情况下看上去像是body区域。
						</p>
					</section>
				</section>
				<section>
					<section>
						<h3>5.编码实战</h3>
					</section>

					<section>demo</section>

				</section>
				<section>
					<section>
						<h3>6.扩展思考</h3>
					</section>
					<section>
						<p>fixed属性都有哪些应用？</p>
					</section>
					<section>
						<a href="https://jingyan.baidu.com/article/4d58d541d54e879dd4e9c033.html">实例详解CSS中position的fixed属性使用</a>
					</section>
				</section>
				<section>
					<section>
						<h3>7.参考文献</h3>
					</section>
					<section>
					<a href="https://www.jianshu.com/p/a116022c6c99">简书</a>
					</section>

				</section>
				<section>
					<section>
						<h3>8.更多讨论</h3>
					</section>
					<section>
						<p>
						</p>
					</section>
				</section>
				<section>
					<h4>鸣谢</h4>
					<p>感谢大家观看</p>
					<p>
						By
						<small style="vertical-align: middle">赖骏锋</small>
					</p>
				</section>
			</div>
		</div>
		<script src="../lib/reveal/js/head.min.js"></script>
		<script src="../lib/reveal/reveal.js"></script>
		<script>
			// 以下为常见配置属性的默认值
			// {
			// 	controls: true, // 是否在右下角展示控制条
			// 	progress: true, // 是否显示演示的进度条
			// 	slideNumber: false, // 是否显示当前幻灯片的页数编号，也可以使用代码slideNumber: 'c / t' ，表示当前页/总页数。
			// 	history: false, // 是否将每个幻灯片改变加入到浏览器的历史记录中去
			// 	keyboard: true, // 是否启用键盘快捷键来导航
			// 	overview: true, // 是否启用幻灯片的概览模式，可使用"Esc"或"o"键来切换概览模式
			// 	center: true, // 是否将幻灯片垂直居中
			// 	touch: true, // 是否在触屏设备上启用触摸滑动切换
			// 	loop: false, // 是否循环演示
			// 	rtl: false, // 是否将演示的方向变成RTL，即从右往左
			// 	fragments: true, // 全局开启和关闭碎片。
			// 	autoSlide: 0, // 两个幻灯片之间自动切换的时间间隔（毫秒），当设置成 0 的时候则禁止自动切换，该值可以被幻灯片上的 ` data-autoslide` 属性覆盖
			// 	transition: 'default', // 切换过渡效果，有none/fade/slide/convex/concave/zoom
			// 	transitionSpeed: 'default', // 过渡速度，default/fast/slow
			// 	mouseWheel: true, //是否启用通过鼠标滚轮来切换幻灯片
			// }
			// 初始化幻灯片
			Reveal.initialize({
				history: true,
				dependencies: [{
						src: '../plugin/markdown/marked.js'
					},
					{
						src: '../plugin/markdown/markdown.js'
					},
					{
						src: '../plugin/notes/notes.js',
						async: true
					},
					{
						src: '../plugin/highlight/highlight.js',
						async: true,
						callback: function() {
							hljs.initHighlightingOnLoad();
						}
					}
				]
			});
		</script>
	</body>

</html>